This invention relates generally to the field of client-side search functionality. More particularly, the invention relates to systems and methods for improving search functionality on a client device by improving, among other things, reliability of the search functionality and improving the accuracy of query processing.
Modern client devices, such as general-purpose computer systems, smart phones, laptops, and tablets, allow users to search for local and external results based on a received query. Local results include locally stored files bearing a particular level of relevance to the received query. Similarly, external results include websites, files stored on a networked computer, among other results that bear a particular level of relevance to the received query. Queries are often unstructured written natural language, and increasingly often, unstructured spoken natural language.
In typical search functionality, such as the Spotlight program, which operates on Macintosh computers from Apple, Inc. of Cupertino, Calif., the various content, file, and metadata are indexed, in what is commonly referred to as an inverted index, for later retrieval using the program. For example, an inverted index might contain a list of references to documents in which a particular word appears. Given the changing nature of files on a computer, the reliability of the index for search depends partially on periodic updates to the index reflecting changes to local files. These periodic updates depend on programs that update the files on the computer to provide application information to the index so that it may accurately reflect the state of the modified files.
Query results are often sorted by a variety of criteria, including relevance, date last modified, date last opened, among others. By default, query results may be presented in order of a determined relevance to the query, but may also provide the user an option to change the criteria by which the results are being presented. The usefulness of the typical sorting methods to a user depends on whether the sorting criteria will actually help the user find what he or she is looking for, and whether the user is aware of the varying sort criteria for the particular search functionality he or she are using.
Some search functionalities, such as Google web search, accept unstructured queries in the form of written natural language. Using a variety of techniques in natural language processing, the unstructured query is interpreted and a search is conducted based on the interpretation. Similarly, some search functionalities accept unstructured queries in the form of spoken natural language. Using a variety of techniques in speech to text recognition, the spoken query is interpreted and a search is conducted based on the interpretation.
As more users depend on their electronic devices to create, store, and share files, the need for improved search functionality has increased significantly. Providing search functionality on a client device that is reliable, produces readily usable results, and is accurate when executing written or spoken natural language queries is of great importance to improving the everyday user experience of a modern electronic device.